package com.yunsom.testdemo.multiple_thread.concurrent_tools;

import com.yunsom.testdemo.multiple_thread.concurrent_tools.pojo.Worker;
import java.util.concurrent.Semaphore;

/**
 * @author Xbao
 * @description
 * @date 2022/9/30 11:07
 */
public class SemaphoreTest {

  public static void main(String[] args) {
    // 例子：若一个工厂有 5 台机器，但是有 8 个工人，一台机器同时只能被一个工人使用，只有使用完了，
    // 其他工人才能继续使用。那么我们就可以通过 Semaphore 来实现：
    int personCount = 8;
    Semaphore semaphore = new Semaphore(5);
    for (int i = 0; i < personCount; i++) {
      new Worker(i, semaphore).start();
    }

  }
}
